Index: head/net/Makefile =================================================================== --- head/net/Makefile +++ head/net/Makefile @@ -480,6 +480,7 @@ SUBDIR += nifmon SUBDIR += nload SUBDIR += nmsg + SUBDIR += nncp SUBDIR += nocatsplash SUBDIR += norm SUBDIR += nph Index: head/net/nncp/Makefile =================================================================== --- head/net/nncp/Makefile +++ head/net/nncp/Makefile @@ -0,0 +1,31 @@ +# $FreeBSD$ + +PORTNAME= nncp +DISTVERSION= 2.0 +CATEGORIES= net +MASTER_SITES= http://www.nncpgo.org/download/ + +MAINTAINER= stargrave@stargrave.org +COMMENT= Utilities for secure store-and-forward files and mail exchanging + +LICENSE= GPLv3+ +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= go:lang/go + +USES= tar:xz +MAKEFILE= BSDmakefile +USE_RC_SUBR= nncp-caller nncp-daemon nncp-toss +INSTALL_TARGET= install-strip + +SUB_FILES= pkg-message pkg-install pkg-deinstall + +OPTIONS_DEFINE= DOCS + +PORTDOCS= AUTHORS NEWS NEWS.RU README README.RU THANKS +INFO= nncp + +post-install: + ${INSTALL_DATA} ${FILESDIR}/nncp.newsyslog.conf.sample ${STAGEDIR}${PREFIX}/etc/nncp.conf.sample + +.include Index: head/net/nncp/distinfo =================================================================== --- head/net/nncp/distinfo +++ head/net/nncp/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1514626571 +SHA256 (nncp-2.0.tar.xz) = bef31b13fb25381ea511fb77067798ab27409238bdf5600fe2eadb29e5e78996 +SIZE (nncp-2.0.tar.xz) = 1009932 Index: head/net/nncp/files/nncp-caller.in =================================================================== --- head/net/nncp/files/nncp-caller.in +++ head/net/nncp/files/nncp-caller.in @@ -0,0 +1,29 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# PROVIDE: nncp-caller +# REQUIRE: DAEMON NETWORKING FILESYSTEMS +# KEYWORD: shutdown +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# nncp_caller_enable (bool): Set to NO by default. +# Set it to YES to enable nncp-caller. +# nncp_caller_config (path): Set to %%PREFIX%%/etc/nncp.yaml by default. + +. /etc/rc.subr + +name=nncp_caller +rcvar=nncp_caller_enable + +load_rc_config $name + +: ${nncp_caller_enable:="NO"} +: ${nncp_caller_config="%%PREFIX%%/etc/nncp.yaml"} + +command=%%PREFIX%%/bin/nncp-caller +command_args="-quiet -cfg $nncp_caller_config &" + +run_rc_command "$1" Index: head/net/nncp/files/nncp-daemon.in =================================================================== --- head/net/nncp/files/nncp-daemon.in +++ head/net/nncp/files/nncp-daemon.in @@ -0,0 +1,32 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# PROVIDE: nncp-daemon +# REQUIRE: DAEMON NETWORKING FILESYSTEMS +# KEYWORD: shutdown +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# nncp_daemon_enable (bool): Set to NO by default. +# Set it to YES to enable nncp-daemon. +# nncp_daemon_config (path): Set to %%PREFIX%%/etc/nncp.yaml by default. +# nncp_daemon_bind (string): Address:port to bind to +# Default is "[::]:5400". + +. /etc/rc.subr + +name=nncp_daemon +rcvar=nncp_daemon_enable + +load_rc_config $name + +: ${nncp_daemon_enable:="NO"} +: ${nncp_daemon_config="%%PREFIX%%/etc/nncp.yaml"} +: ${nncp_daemon_bind="[::]:5400"} + +command=%%PREFIX%%/bin/nncp-daemon +command_args="-quiet -bind $nncp_daemon_bind -cfg $nncp_daemon_config &" + +run_rc_command "$1" Index: head/net/nncp/files/nncp-toss.in =================================================================== --- head/net/nncp/files/nncp-toss.in +++ head/net/nncp/files/nncp-toss.in @@ -0,0 +1,32 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# PROVIDE: nncp-toss +# REQUIRE: DAEMON NETWORKING FILESYSTEMS +# KEYWORD: shutdown +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# nncp_toss_enable (bool): Set to NO by default. +# Set it to YES to enable nncp-toss. +# nncp_toss_config (path): Set to %%PREFIX%%/etc/nncp.yaml by default. +# nncp_toss_cycle (int): Repeat tossing after that number of seconds. +# Default is "60". + +. /etc/rc.subr + +name=nncp_toss +rcvar=nncp_toss_enable + +load_rc_config $name + +: ${nncp_toss_enable:="NO"} +: ${nncp_toss_config="%%PREFIX%%/etc/nncp.yaml"} +: ${nncp_toss_cycle="60"} + +command=%%PREFIX%%/bin/nncp-toss +command_args="-quiet -cycle $nncp_toss_cycle -cfg $nncp_toss_config &" + +run_rc_command "$1" Index: head/net/nncp/files/nncp.newsyslog.conf.sample =================================================================== --- head/net/nncp/files/nncp.newsyslog.conf.sample +++ head/net/nncp/files/nncp.newsyslog.conf.sample @@ -0,0 +1 @@ +/var/spool/nncp/log 644 7 100 * CXN Index: head/net/nncp/files/pkg-deinstall.in =================================================================== --- head/net/nncp/files/pkg-deinstall.in +++ head/net/nncp/files/pkg-deinstall.in @@ -0,0 +1,9 @@ +#!/bin/sh + +[ "$2" = "POST-DEINSTALL" ] || exit 0 + +if [ -e %%PREFIX%%/etc/nncp.yaml ]; then + echo "%%PREFIX%%/etc/nncp.yaml with your private keys is not removed!" +fi + +exec rmdir /var/spool/nncp Index: head/net/nncp/files/pkg-install.in =================================================================== --- head/net/nncp/files/pkg-install.in +++ head/net/nncp/files/pkg-install.in @@ -0,0 +1,5 @@ +#!/bin/sh + +[ "$2" = "POST-INSTALL" ] || exit 0 + +[ -e /var/spool/nncp ] || exec mkdir -p /var/spool/nncp Index: head/net/nncp/files/pkg-message.in =================================================================== --- head/net/nncp/files/pkg-message.in +++ head/net/nncp/files/pkg-message.in @@ -0,0 +1,17 @@ +====================================================================== +- Add the following lines to /etc/rc.conf to enable nncp-daemon, + nncp-caller and nncp-toss: + + nncp_daemon_enable="YES" + nncp_caller_enable="YES" + nncp_toss_enable="YES" + +- %%PREFIX%%/etc/newsyslog.conf.d/nncp.conf + log rotation configuration has been installed. +- /var/spool/nncp is the packet spool directory. +- Look in nncp.info how to integrate mail exchanging with Postfix. +- Generate NNCP configuration file using the command: + + # umask 077 + # nncp-cfgnew > %%PREFIX%%/etc/nncp.yaml +====================================================================== Index: head/net/nncp/pkg-descr =================================================================== --- head/net/nncp/pkg-descr +++ head/net/nncp/pkg-descr @@ -0,0 +1,16 @@ +NNCP (Node to Node copy) is a collection of utilities simplifying +secure store-and-forward files and mail exchanging. + +This utilities are intended to help build up small size (dozens of +nodes) ad-hoc friend-to-friend (F2F) statically routed darknet networks +for fire-and-forget secure reliable files, file requests and Internet +mail transmission. All packets are integrity checked, end-to-end +encrypted (E2EE), explicitly authenticated by known participants public +keys. Onion encryption is applied to relayed packets. Each node acts +both as a client and server, can use push and poll behaviour model. + +Out-of-box offline sneakernet/floppynet, dead drops, sequential and +append-only CD-ROM/tape storages, air-gapped computers support. But +online TCP daemon with full-duplex resumable data transmission exists. + +WWW: http://www.nncpgo.org/ Index: head/net/nncp/pkg-plist =================================================================== --- head/net/nncp/pkg-plist +++ head/net/nncp/pkg-plist @@ -0,0 +1,19 @@ +bin/nncp-bundle +bin/nncp-call +bin/nncp-caller +bin/nncp-cfgenc +bin/nncp-cfgmin +bin/nncp-cfgnew +bin/nncp-check +bin/nncp-daemon +bin/nncp-file +bin/nncp-freq +bin/nncp-log +bin/nncp-mail +bin/nncp-pkt +bin/nncp-reass +bin/nncp-rm +bin/nncp-stat +bin/nncp-toss +bin/nncp-xfer +@sample etc/nncp.conf.sample etc/newsyslog.conf.d/nncp.conf